import { datagridgrowth } from './getdata'
import editor from './editor'
import rhchInit from './rhchInit'
import formula from './formula'
import { luckysheetrefreshgrid } from './refresh'
import sheetmanage from '../controllers/sheetmanage'
import Store from '../store'

export default function luckysheetcreatesheet(
  colwidth,
  rowheight,
  data,
  cfg,
  active
) {
  if (active == null) {
    active = true
  }

  Store.visibledatarow = []
  Store.visibledatacolumn = []
  Store.ch_width = 0
  Store.rh_height = 0
  Store.zoomRatio = 1

  if (cfg != null) {
    Store.config = cfg
  } else {
    Store.config = {}
  }

  if (data.length == 0) {
    Store.flowdata = datagridgrowth(data, rowheight, colwidth)
  } else if (data.length < rowheight && data[0].length < colwidth) {
    Store.flowdata = datagridgrowth(
      data,
      rowheight - data.length,
      colwidth - data[0].length
    )
  } else if (data.length < rowheight) {
    Store.flowdata = datagridgrowth(data, rowheight - data.length, 0)
  } else if (data[0].length < colwidth) {
    Store.flowdata = datagridgrowth(data, 0, colwidth - data[0].length)
  } else {
    Store.flowdata = data
  }

  editor.webWorkerFlowDataCache(Store.flowdata) //worker存数据

  rhchInit(rowheight, colwidth)

  if (active) {
    sheetmanage.showSheet()

    setTimeout(function() {
      sheetmanage.restoreCache()
      formula.execFunctionGroup()
      sheetmanage.restoreSheetAll(Store.currentSheetIndex)
      luckysheetrefreshgrid()
    }, 1)
  }
}
